package com.jhz.speedy.component.image;

import android.content.Context;

import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.load.engine.cache.LruResourceCache;
import com.bumptech.glide.module.AppGlideModule;

import java.io.InputStream;

/**
 * 图片加载
 * 必需带有@GlideModule注解。
 * Created by JunHeZ on 2017/6/28.
 */
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
    /**
     *  通过GlideBuilder设置默认的结构(Engine,BitmapPool ,ArrayPool,MemoryCache等等).
     * @param context   c
     * @param builder   b
     */
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
         // 重新设置内存限制
         builder.setMemoryCache(new LruResourceCache(10*1024*1024));
    }

    /**
     * 为App注册一个自定义的GlideUrlLoader
     * @param context   c
     * @param registry  r
     */
    @Override
    public void registerComponents(Context context, Registry registry) {
             registry.append(String.class, InputStream.class,new MyBaseGlideUrlLoader.Factory());
    }

    /**
     * 清单解析的开启
     *
     * 这里不开启，避免添加相同的modules两次
     * isManifestParsingEnabled() 返回false,关闭解析AndroidManifest，不需要再配置GlideModule.
     * @return  是否开启
     */
    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}
